The present invention relates generally to a computer system for modeling and simulating complex business processes having multiple discrete tasks, each of which may be performed by one or more available resource. More particularly, the invention relates to a computer system which includes a modeling interface to a generic simulation engine that allows a user easily to define and modify models representative of the discrete tasks and the available resources and attributes associated with the tasks and resources, such as task sequence and dependence, task times by entity type, resource skill level, and resource schedule, etc., for example.
The following paragraphs in this section are intended to introduce the reader to various aspects of art which may be related to various aspects of the present invention which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Complex business processes, such as sales processing and patient scheduling and processing, generally involve many discrete tasks which can be performed by many different resources having different availability. Not only can the discrete tasks be performed by different resources, but the tasks may also be performed according to various different task flows and dependencies. However, the multitude of different tasks, variability in processing times, task arrangements, and available resources introduce numerous variables, variable dependencies, and combinations of variables, making it difficult to design an optimal process or system for a given anticipated demand level and pattern.
The planning and design of such complex processes and systems have typically been approached in two ways. Under the first approach, the process or system is simply designed and implemented. The system or process is then actually performed in an experimental environment to verify its operation and efficiency. This approach, however, is costly because of the consumption of valuable resources (e.g., skilled workers, materials, capital, etc.) required to purchase, install, and verify the process or system, as well as the resources required to correct inadvertent errors in the design and planning that may have occurred and were not discovered until after implementation.
Under the second approach, simulation software is used to model the process or system and then to simulate operation of the process or system. This approach is advantageous as it provides the opportunity to test and verify the design before investing in the actual implementation. Further, once developed, the model can be used to play out “what-if’ scenarios to evaluate alternative implementations, thus facilitating optimization of the final design.
Although the simulation approach seemingly offers a practical and efficient solution to designing complex processes and systems, existing simulation software traditionally is expensive and difficult to use. Development of simulation models must be performed by software programmers having expertise in the simulation language and simulation programming techniques. Such programmers are expensive and often do not have special knowledge regarding the particular process or system that the programmer is modeling. Further, once developed, the underlying model can be changed only by interacting with the simulation software code, thus requiring the continued participation of the programming or simulation expert.
Accordingly, existing simulation systems are not particularly flexible and moreover, such existing systems are difficult to use without the continued assistance of a programming expert. Still further, the costs associated with the acquisition and use of a simulation system often are prohibitive.
Accordingly, it would be desirable to provide a simulation system that could be easily used by non-software experts, particularly by users having special knowledge with respect to the process or system being simulated. Also, it would be desirable to provide a simulation system in which simulation models can be easily created, modified, and stored so that iterative or alternative design processes may be carried out and the same simulation system could be used to simulate numerous different types of processes. Further, it would be advantageous if such a system could be designed with a modeling interface that could be used by many users concurrently, thus reducing costs associated with modeling and simulating processes. In addition, the system could be designed such that the simulation could be performed over a network (e.g., an intranet, the Internet, etc.) thus allowing the user, such as a design consultant, to work from a remote location (e.g., a customer's facility).
The invention addresses the above problems with known techniques, as well as others.